This invention relates to an instruction set for controlling a signal processor and particularly to an instruction set for controlling a sound effects audio signal processor within an audio system.
Sound effects audio signal processors (ASPs) are commonly used to generate sound effects in a multitude of audio components, some examples being programmable musical instruments, video games, cinema sound systems, virtual reality systems, and computer audio systems.
ASPs create sound effects by executing programs containing a series of instructions. Each instruction directs the ASP to perform a specific logical and/or arithmetic operation on the received signal, resulting in the program's creation of a particular sound effect.
Conventional ASPs, such as that disclosed in U.S. Pat. No. 5,376,7523 to Limberis et. al., incorporated herein by reference, employ instructions primarily designed for use in general purpose digital signal processors (DSPs). General purpose DSP instructions are well-known in the art and include arithmetic instructions such as "Accumulate," "Multiply and Accumulate," as well as logical instructions such as "AND," "OR," and "XOR."
While many ASPs make use of the conventional DSP instructions, instructions with special characteristics are needed to meet the particular demands of processing audio signals. For instance, ASPs require a constant output sample rate since delays in or deviation from the ASP's output sample rate result in unwanted audible gaps or signal distortion. A constant output sample rate is usually ensured by executing the same number of instruction for each sound effects program, where each instruction takes the same amount of time to execute.
Conventional DSP conditional instructions such as IF/ELSE IF/ELSE instructions cannot be easily used in ASPs since the number of executed instructions may not be the same as programs not having the conditional instruction, or the number of executed instructions within the particular program may be different depending upon if the condition is TRUE or FALSE. However, conditional instructions remain valuable programming tools in creating sound effects. Therefore, a need exists for a conditional instruction which when executed, executes the same number of instructions as those programs without the conditional instruction, and will execute the same number of instructions within the program regardless of the whether the condition's result is TRUE or FALSE.
Another requirement particular to ASPs is the conservation of the information content of signals having widely varying magnitudes. Conventional linear to logarithmic conversion DSP instructions, such as the IEEE floating point instruction, generate a logarithmic representation having fixed exponent and mantissa fields. Because the exponent and mantissa fields are of a fixed length, signal information which is stored beyond those fields is lost.
What is needed is a linear to log conversion instruction which can define the exponent and mantissa fields of the log value, so that either field may be expanded or contracted to retain important signal information. Further distinctive from conventional DSPs is the generation of special audio effects and waveshaping. Conventional DSP instructions do not provide the necessary waveshaping operations needed for creation of specialized audio effects.
Special ASP instructions could be added to an existing DSP instruction set, but the addition of a large number of instructions to the existing instruction set may be precluded by the limited size of the ASP's existing instruction memory. Although a small addition may not be precluded, any addition would require the allocation of a larger instruction memory within the ASP, driving up the ASP's fabrication cost.
What is needed is an ASP instruction set having a minimal number of multi-functional instructions, whereby a single instruction can be used to provide both conventional DSP and specialized operations. Further needed is the ability to reuse the instruction's specialized operations to formulate other specialized operations, thereby enabling the creation of a multitude of different sound effects with the same instruction set.